//https://vjudge.net/problem/51Nod-1006
//题意：给出一对字符串，输出它们的最长公共子序列
//思路：先dp求出最长公共子序列长度，再根据dp数组的大小状态（当dp[i-1][j]<dp[i][j-1]则i是被取的字符，j--直到相等存入，j同理,相等则两个都不是，随便减一个）输出子序列
#include<bits/stdc++.h>
using namespace std;
int dp[1050][1050]={0};
int main(){
    string a,b,c;
    cin>>a>>b;
    int la=a.length(),lb=b.length();
    for(int i=1;i<=la;i++){
        for(int j=1;j<=lb;j++){
            if(a[i-1]==b[j-1]){
                dp[i][j]=dp[i-1][j-1]+1;
            }
            else{
                dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
            }
        }
    }
    //printf("%d\n",dp[la][lb]);
    int len=dp[la][lb];
    c=a;
    while(la!=0&&lb!=0){
        if(a[la-1]==b[lb-1]){
            c[len-1]=a[la-1];
            la--;
            lb--;
            len--;
        }
        else if(dp[la-1][lb]<dp[la][lb-1]){
            lb--;
        }
        else if(dp[la-1][lb]>=dp[la][lb-1]){
            la--;
        }
    }
    len=dp[a.length()][b.length()];
    for(int i=0;i<len;i++){
        printf("%c",c[i]);
    }
    //system("pause");
}